package com.bootcamp.mall.service.user;

import com.bootcamp.mall.model.bo.user.UpdateUserDataBO;
import com.bootcamp.mall.model.vo.user.AllUserVO;
import com.bootcamp.mall.model.vo.user.UserDataVO;

import java.util.List;

/**
 * @program: mall
 * @description: user interface, bridge for bo,pojo and vo
 * @author: Keyu Li
 * @create: 2021-11-09 20:06
 **/

public interface UserService {
    /**
     * 无参构造方法，返回所有user bo对象
     * @param :
     * @return java.util.List<com.bootcamp.mall.model.vo.user.AllUserBO>
     * @date 11/9/2021 21:02
     */
    List<AllUserVO> allUser();

    /**
     * 根据id删除用户，一般肯定会返回1成功，返回0代表服务器异常，返回-1代表删除的是admin
     * @param id:
     * @return java.lang.Integer
     * @date 11/9/2021 21:09
     */
    Integer deleteUser(Integer id);

    /**
     * 根据昵称搜索模糊用户信息
     * @param nickname:
     * @return java.util.List<com.bootcamp.mall.model.vo.user.AllUserBO>
     * @date 11/9/2021 21:11
     */
    List<AllUserVO> searchUser(String nickname);

    /**
     * 通过昵称返回 user 所有信息
     * @param token:
     * @return com.bootcamp.mall.model.vo.user.UserDataVO
     * @date 11/13/2021 20:31
     */
    UserDataVO showUserData(String token);

    Integer updateUserData(UpdateUserDataBO userBO);
}
